using System;
using System.Collections.Generic;

class PrimeFactorization
{
    // 实现算法逻辑的方法，用于找出一个数的所有素数因子
    static List<int> FindPrimeFactors(int number)
    {
        List<int> factors = new List<int>();
        for (int i = 2; i * i <= number; i++)
        {
            while (number % i == 0)
            {
                factors.Add(i);
                number /= i;
            }
        }
        if (number > 1)
        {
            factors.Add(number);
        }
        return factors;
    }

    // 输入输出的方法
    static void InputOutput()
    {
        try
        {
            // 提示用户输入一个正整数
            Console.Write("请输入一个正整数: ");
            int inputNumber = int.Parse(Console.ReadLine());

            if (inputNumber <= 0)
            {
                Console.WriteLine("输入的数必须是正整数。");
                return;
            }

            // 调用 FindPrimeFactors 方法找出素数因子
            List<int> primeFactors = FindPrimeFactors(inputNumber);

            // 输出结果
            Console.Write($"数字 {inputNumber} 的素数因子是: ");
            foreach (int factor in primeFactors)
            {
                Console.Write(factor + " ");
            }
            Console.WriteLine();
        }
        catch (FormatException)
        {
            Console.WriteLine("输入无效，请输入一个有效的整数。");
        }
    }

    static void Main()
    {
        // 调用输入输出方法
        InputOutput();
    }
}